let express = require("express");
let bodyParser = require("body-parser");
// 引入cookie-parser模块儿 用于设置cookie
let cookieParser = require("cookie-parser");
let web = express();
web.use(express.static("public"));
web.use(bodyParser.urlencoded({extended:true}));
// 使用cookieParser
web.use(cookieParser())
web.post("/login",(req,res)=>{
    let {username,password} = req.body;
    // 给客户端设置cookie 参数一 cookie属性名 参数 二 cookie属性值
    res.cookie("login_cookie",username)
    res.send({
        code:0,
        msg:"登录成功",
        data:{
            username:username
        }
    }) 
})
// 判断用户是否登录 客户端每次发送请求都会携带 客户端存储的cookie发送请求，服务端只需要判断客户端是否有携带cookie就可以若携带cookie则 已登录
web.get("/isLogin",(req,res)=>{
    // 获取客户端cookie
    let username = req.cookies.login_cookie;
    console.log(username)
    if(username){
        res.send({
            code:0,
            msg:"已登录"
        })
    }else{
        res.send({
            code:1,
            msg:"未登录"
        })
    }
})
// 退出登录
web.get("/outLogin",(req,res)=>{
    // 删除客户端cookie 退出登录
    res.clearCookie("login_cookie")
    res.send({
        code:0,
        msg:"退出成功"
    })
})
web.listen(8080,()=>{
    console.log("服务端已启动....")
})

/* 
 localStorage、sessionStorage和cookie的区别：
 1.都可以用来存储数据。
 2.localStorage本地存储只要不手动删除 数据永远存在 sessionStoreage会话存储浏览器关闭自动删除。
 3.localStorage和sessionStorage只能存储到浏览器而cookie不仅可以在浏览器存储还可以传递到服务端。
 4.每次发送请求默认都会自动携带cookie请求
 5.cookie有大小限制 最多可以存储20条数据 每条最大不能超过4kb localStorage没有大小限制

*/

/* 
1、服务端给客户端设置cookie res.cookie("属性名","属性值")
2. 服务端获取客户端cookie req.cookies.属性名
3. 服务端删除客户端cookie res.clearCookie("属性名")
*/